/**
 *
    算法描述：两种状态，用布尔二维数组即可
    解决所需数据结构+算法：
**/
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;

bool a[110][110];

int main() {
    memset(a, 0, sizeof(a));
    int n, m, k, x, y, o, p, ans = 0;
    cin >> n >> m >> k;
    while(m--) { // 火把特点：横纵坐标与中心的差值<=2
        cin >> x >> y;
        for(int i=-2; i<=2; i++) {
            for(int j=-2; j<=2; j++) {
                if(x+i>=1 && x+i<=n && y+j>=1 && y+j<=n) {
                    if(abs(i) + abs(j) <= 2) // 火把功能没有萤石那么强
                        a[x+i][y+j] = true;
                }
            }
        }
    }
    while(k--) { // 萤石：代码几乎一样
        cin >> o >> p;
        for(int i=-2; i<=2; i++) {
            for(int j=-2; j<=2; j++) {
                if(o+i>=1 && o+i<=n && p+j>=1 && p+j<=n) {
                    a[o+i][p+j] = true;
                }
            }
        }
    }

    for(int i=1; i<=n; i++) {
        for(int j=1; j<=n; j++)
            if(!a[i][j]) ans++;
    }

    cout << ans << endl;

    return 0;
}